#ifndef __NETWORK_PROCESSING_H__
#define __NETWORK_PROCESSING_H__

#include "common_def.h"
#include "soc_osal.h"
#include "app_init.h"
#include "osal_event.h"
#include "errcode.h"

#include "cJSON.h"
#include "MQTTClient.h"

// 网络通行参数变量
extern uint8_t g_wifi_mode;         // wifi工作模式  0: Disabled; 1: STA; 2: AP; 3: STA+AP
extern uint8_t g_wifi_network_mode; // wifi网络传输模式可复用 0x00: Disabled; 0x01: TCP server; 0x02: TCP client; 0x04: UDP; 0x08: MQTT;
extern uint8_t g_iot_type;          // iot平台类型 0: Disabled; 1: GEC-IoT;
#define QOS 1
#define MQTT_SERVER_IP_MAX_LEN 128 // MQTT服务器IP地址最大长度
#define MQTT_CLIENT_ID_MAX_LEN 32  // MQTT客户端ID最大长度
#define MQTT_USERNAME_MAX_LEN 32   // MQTT用户名最大长度
#define MQTT_PASSWORD_MAX_LEN 32   // MQTT密码最大长度
#define IOT_CLIENT_ID_MAX_LEN 32   // iot平台客户端ID最大长度
#define IOT_PROTOCOL_MAX_LEN 32    // iot平台协议最大长度
extern int MQTTClient_init(void);
extern MQTTClient MQTT_client;                        // MQTT客户端对象

// MQTT连接参数
#define g_mqtt_server_ip "iot.yueqian.com.cn"
#define g_mqtt_server_port 20061
#define g_mqtt_client_id "Sle_DevTest"
#define g_mqtt_username "SleIotDevTest"
#define g_mqtt_password "SleIotDevTest"

// IoT云端MQTT主题
#define IOT_MQTT_TOPIC_DATA_REPORT "/SLE_IoT/Sle_DevTest/properties/report"          // IoT设备数据上报主题
#define IOT_MQTT_TOPIC_DATA_READ "/SLE_IoT/Sle_DevTest/properties/read"             // IoT设备数据读取主题
#define IOT_MQTT_TOPIC_DATA_READ_REPLY "/SLE_IoT/Sle_DevTest/properties/read/reply" // IoT设备数据读取回复主题
#define IOT_MQTT_TOPIC_CONTROL_INVOKE "/SLE_IoT/Sle_DevTest/function/invoke"        // IoT设备功能调用主题
#define IOT_MQTT_TOPIC_CONTROL_REPLY "/SLE_IoT/Sle_DevTest/function/invoke/reply"   // IoT设备功能调用响应主题

// 系统网络功能函数声明
errcode_t SystemGateway_WifiConfig(void);



#endif // __SYSTEM_GATEWAY_H__